package com.example.module.favorites.mapper;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.common.unit.PageUtil.PageParam;
import com.example.module.favorites.DO.FavoritesAddDO;
import com.example.module.favorites.DO.GetFavoritesDO;
import com.example.module.favorites.form.GetFavoritesForm;
import com.example.module.favorites.vo.GetFavoritesVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author ghy
 * @date 2025/08/15
 * @description 收藏夹Mapper
 */
@Mapper
@Repository
public interface FavoritesMapper {
    /*
     * 添加收藏
     *
     * @param FavoritesAddDO
     * @return void
     * */
    public void addFavorites(FavoritesAddDO favoritesAddDO);

    /*
     * 删除收藏
     * 根据收藏Id准确删除
     *
     * @param favoritesId
     * @return void
     * */
    public void deleteFavorites(Long favoritesId);

    /*
     * 查询收藏
     * 根据收藏ID准确查询
     * 根据商品Id准确查询
     * 根据商品类型准确查询
     * 根据商品名称模糊查询
     * 根据商品名称模糊查询
     * 根据商品价格模糊查询
     * 根据商品状态准确查询
     * 根据用户Id准确查询
     * 根据用户名称模糊查询
     * 根据收藏时间模糊查询
     *
     * @param GetFavoritesForm
     * @return List<GetFavoritesVO>
     * */
    public List<GetFavoritesVO> getFavorites(GetFavoritesForm getFavoritesForm);

    /*
     * 分页查询收藏
     *
     * @param page 分页对象
     * @param getFavoritesForm 查询条件
     * @return Page<GetFavoritesVO> 分页结果
     */
    Page<GetFavoritesVO> getFavoritesByPage(Page<GetFavoritesVO> page, @Param("form") GetFavoritesForm getFavoritesForm);


}
